package Task03_3;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/*
作业3
分析以下需求，并用代码实现：
(1)定义一个学生类Student，包含属性：姓名(String name)、年龄(int age)
(2)定义Map集合，用Student对象作为key，用字符串(此表示表示学生的住址)作为value
(3)利用四种方式遍历Map集合中的内容，格式：key::value
 */
public class Student {
    String name;
    int age;
    public Student(){

    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "{" +
                "'" + name + '\'' +
                ", " + age +
                '}';
    }

    public static void main(String[] args) {
        //定义Map集合，用Student对象作为key，用字符串(此表示表示学生的住址)作为value
        Map<Student,String> mp = new HashMap<>();
        mp.put(new Student("张三",19),"中国广东深圳");
        mp.put(new Student("李四",20),"中国北京");
        mp.put(new Student("王五",24),"中国上海");
//        System.out.println(mp);

        //利用四种方式遍历Map集合中的内容，格式：key::value
        //1、entry
        for (Map.Entry<Student,String> s : mp.entrySet())
            System.out.println(s);
        System.out.println("-------------------------------------");
        //2、keySet
        for (Student s1 : mp.keySet())
            System.out.println(s1 +  "::" + mp.get(s1));
        System.out.println("-------------------------------------");
        //3、迭代器
            Iterator<Map.Entry<Student,String>> it = mp.entrySet().iterator();
            while (it.hasNext())
                System.out.println(it.next());
        System.out.println("-------------------------------------");
        //4、!!!!!!!!!!!! 第四种不会,只找到了一个没有Key的方法!!!!!!!!!!!!!!!!!!
        System.out.println("!!!!!!!!!!!! 第四种不会,只找到了一个没有Key的方法!!!!!!!!!!!!!!!!!!");
         for(Object m: mp.values())
                 System.out.println(m);
    }
}
